home *** CD-ROM | disk | FTP | other *** search
/ Softdisk Supreme / Softdisk Supreme.iso / pc / DSK Files / 0-49 / SD023b.dsk / TEXT-TRICKS.bas < prev    next >
BASIC Source File  |  2003-06-12  |  24KB  |  211 lines

  1. 3  REM <CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H>                                       --==##=*=##==--                                         BY DR. B. ZARRO                                         --==##=*=##==--                                                             
  2. 4  REM <CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H>                                                                                                                
  3. 10  HIMEM: 33790
  4. 11  HOME : PRINT "========================================": PRINT "           FIRST: THE PUT-ONS": PRINT : PRINT "========================================"
  5. 12  FOR Z = 1 TO 2300: NEXT 
  6. 20 ZC$ =  CHR$(34)
  7. 21  DIM Z$(23): FOR Z = 0 TO 22: READ Z$(Z): NEXT 
  8. 22  HOME : FOR Z = 0 TO 22: VTAB Z +1: HTAB 1: PRINT Z$(Z): NEXT : GET Z$
  9. 23  HOME : FOR Z = 1 TO 1500: NEXT :Z$(19) = "***  THIS SUBROUTINE IS CALLED:  ***":Z$(20) = "***  ROLLING TEXT                ***": GOSUB 20000: GET Z$: HOME 
  10. 24 Z$(20) = "***  VERTICAL RISE               ***": GOSUB 20020: GET Z$: HOME 
  11. 26  RESTORE : FOR Z = 0 TO 22: READ Z$(Z): NEXT :Z$(19) = "***  THIS SUBROUTINE IS CALLED:  ***"
  12. 28 Z$(20) = "***  REPEATING LINE              ***": GOSUB 20060: GET Z$: HOME 
  13. 29 Z$ = "IF NOTHING ELSE" + CHR$(44) +" YOU SHOULD AT LEAST ADDA LITTLE SOUND TO YOUR PROGRAM.":V = 1: GOSUB 20070
  14. 30  FOR Z = 1 TO 1000: NEXT :Z$ = "OR BRING THE TEXT ON USING ONE OF THE   SUBROUTINES DEMONSTRATED HERE:":V = 4: GOSUB 20070
  15. 31  FOR Z = 1 TO 1000: NEXT 
  16. 32 L$ = "THESE ARE CALLED " +ZC$ +"PULLS" +ZC$ +".":V = 7: GOSUB 20080
  17. 33 L$ = "THIS IS AN " +ZC$ +"UP AND IN PULL" +ZC$:V = 9: GOSUB 20080
  18. 34 Z$ = "THIS IS A " +ZC$ +"RIGHT PULL" +ZC$ +".":V = 11: GOSUB 20110
  19. 35  FOR Z = 1 TO 1000: NEXT 
  20. 36 Z$ = "THIS IS A " +ZC$ +"LEFT PULL" +ZC$ +".":V = 13: GOSUB 20120
  21. 37  FOR Z = 1 TO 1000: NEXT :Z$ = "THIS IS A " +ZC$ +"CENTER PULL" +ZC$:V = 15: GOSUB 20130: FOR Z = 1 TO 1000: NEXT 
  22. 39 L$ = "THIS IS " +ZC$ +"SLOT MACHINE TEXT" +ZC$:V = 20: GOSUB 20170
  23. 41  HOME 
  24. 44 L$ = "THIS SUBROUTINE IS CALLED " +ZC$ +"ESCALATOR" +ZC$:V = 5: GOSUB 20320
  25. 45  FOR Z = 1 TO 1000: NEXT : PRINT : PRINT 
  26. 59  PRINT "THE NEXT SUBROUTINE CREATES A NICE TITLEPAGE WHICH YOU CAN USE AT THE BEGINNING OF ONE OF YOUR PROGRAMS.": PRINT : PRINT "TYPE ANY KEY TO SEE IT RUN."
  27. 60 T1$ = "SAMPLE TITLE":T2$ = "THIS TITLE CAN BE":T3$ = "ONE, TWO, OR THREE LINES": GET Z$: GOSUB 21200: GOTO 200
  28. 61  HOME : FOR Z = 1 TO 30: VTAB  RND(1) *23 +1: HTAB  RND(1) *37 +1: PRINT "]";: FLASH : PRINT " ";: NORMAL : NEXT 
  29. 62 L$ = "THIS MESSAGE APPEARS COURTESY OF A     SUBROUTINE CALLED " +ZC$ +"HIDDEN MESSAGE" +ZC$ +".     WARNING!!! IF YOU UNVEIL THE ENTIRE LINEIT WILL TRIGGER A ROUTINE WHICH WILL    BOMB YOUR DIS"
  30. 63  VTAB 7:V = 7: HTAB 1: PRINT "]";: FLASH : PRINT " ";: NORMAL : CALL  -1008: GOSUB 20340
  31. 64  PRINT : PRINT "<CTRL-D>RUN B/Z BOMB"
  32. 65  END 
  33. 100  DATA THERE IS REALLY NO EXCUSE FOR PUTTING,TEXT ON THE SCREEN IN A DULL FASHION,SUCH AS THIS.,,LET'S DO THIS PAGE OVER AGAIN AND SEE,IF WE CAN SPICE IT UP A LITTLE.,
  34. 101  DATA   EACH SUBROUTINE IS WELL MARKED AND CAN,EASILY BE INCORPORATED INTO YOUR PRO-,GRAMS.,,,A 'REM' STATEMENT NEAR THE BEGINNING OF,EACH SUBROUTINE TELLS YOU WHAT VARIABLES
  35. 102  DATA NEED TO BE SET BEFORE USING THE ROUTINE.,THEY ARE USUALLY Z$ OR L$ FOR A STRING..,Z$(XX) FOR AN ARRAY...V FOR VTAB...AND,H FOR HTAB.,,,,,(TYPE ANY KEY)
  36. 103  END 
  37. 200  HOME : PRINT "========================================": PRINT "          NEXT: THE TAKE-OFFS": PRINT : PRINT "========================================"
  38. 201  FOR Z = 1 TO 2300: NEXT : GOSUB 305
  39. 205  PRINT "COLUMN WIPE ";: GET Z$: GOSUB 30000: GOSUB 305: PRINT "LEFT TO RIGHT WIPE ";: GET Z$: GOSUB 30010: GOSUB 305
  40. 210  PRINT "RIGHT TO LEFT WIPE ";: GET Z$: GOSUB 30020: GOSUB 305: PRINT "TOP TO BOTTOM WIPE ";: GET Z$: GOSUB 30030: GOSUB 305
  41. 215  PRINT "VERTICAL CENTER OUT WIPE ";: GET Z$: GOSUB 30060: GOSUB 305: PRINT "TWO WAY CENTER OUT WIPE ";: GET Z$: GOSUB 30070: GOSUB 305
  42. 220  PRINT "X-WIPE ";: GET Z$: GOSUB 30080: GOSUB 305
  43. 225  PRINT "SPIRAL WIPE ";: GET Z$: GOSUB 30110: GOSUB 305
  44. 230  PRINT "SIMPLE SCROLL UP ";: GET Z$: GOSUB 30140: GOSUB 305: PRINT "FLASHY SCROLL UP ";: GET Z$: GOSUB 30150: GOSUB 305
  45. 235  PRINT "SCROLL DOWN ";: GET Z$: GOSUB 30160: GOSUB 305
  46. 240  PRINT "SLANT LEFT ";: GET Z$: GOSUB 30210: GOSUB 305: PRINT "SLANT RIGHT ";: GET Z$: GOSUB 30220: GOSUB 305
  47. 245  PRINT "SLANT FROM CENTER ";: GET Z$: GOSUB 30230: GOSUB 305: PRINT "SLANT FROM EDGES ";: GET Z$: GOSUB 30240: GOSUB 305
  48. 250  PRINT "BORDER WIPE ";: GET Z$:W = 2:CH$ = "%": GOSUB 30250: PRINT "THIS IS THE ONLY  WIPE  SUBROUTINE";
  49. 255  PRINT "WHICH REQUIRES  THAT  YOU  PROVIDEVARIABLES.": PRINT : PRINT "THE VARIABLE YOU MUST SUPPLY ARE:": PRINT : PRINT "CH$ : THE BORDER CHARACTER USED": PRINT "W : THE WIDTH OF THE BORDER"
  50. 260  PRINT "MODE : INVERSE OR FLASH (OPTIONAL)": PRINT "IN THIS CASE, I USED THE FOLLOWINGTO CREATE THIS BORDER:": PRINT : PRINT "CH$ = "; CHR$(34);"%"; CHR$(34);" : W = 2": PRINT : PRINT : PRINT 
  51. 265  PRINT "(TYPE ANY KEY TO CONTINUE) ";: GET Z$:W = 1:CH$ = ":":MODE = 2: GOSUB 30250: PRINT "EACH TIME YOU USE THIS  ROUTINE,THE TEXT WINDOW WILL  BE  FILLED";
  52. 270  PRINT "WITH ANY CHARACTER YOU CHOOSE.": PRINT : PRINT "A NEW WINDOW WILL THEN BE OPENEDAND A  BORDER  OF  BLANK  SPACESWILL AUTOMATICALLY  BE  PROVIDED";
  53. 275  PRINT "AROUND THE NEXT TEXT YOU PUT  ONTHE SCREEN.": PRINT : PRINT "FOR FLASHING CHARACTERS USE MODE= 1.  FOR INVERSE CHARACTERS USEMODE = 2.": PRINT 
  54. 280  PRINT "TO MAKE THIS BORDER I USED:     CH$ = "; CHR$(34);":"; CHR$(34);" : W = 1 : MODE = 2  ";: GET Z$:W = 2:CH$ = "&": GOSUB 30250
  55. 285  PRINT "TO MAKE THIS BORDER I USED:": PRINT "CH$ = "; CHR$(34);"&"; CHR$(34);" : W = 2": PRINT : PRINT "IT'S NOT  NECESSARY  TO  SETTHE MODE EACH TIME  YOU  USE";
  56. 290  PRINT "THIS ROUTINE.  NORMAL  CHAR-ACTERS WILL BE  USED  UNLESSMODE IS SET TO 1 OR 2.": PRINT : PRINT "LET'S TRY IT ONE  MORE  TIMEUSING W = 4 , MODE = 1 , ANDCH$ = "; CHR$(34);"*"; CHR$(34);". ";
  57. 295  GET Z$:W = 4:MODE = 1:CH$ = "*": GOSUB 30250: PRINT "USE   THE   FLASHINGMODE  SPARINGLY.  ITCAN GET TO BE A  BITTOO MUCH.";: FOR Z = 1 TO 5000: NEXT : TEXT 
  58. 300  GOTO 61
  59. 305  FOR Z = 1 TO 1500: NEXT : HOME : INVERSE : PRINT "                TAKE-OFFS                ";: HTAB 40: PRINT "  ";: NORMAL : PRINT " THIS PROGRAM WILL DEMONSTRATE SUB-   ";
  60. 310  INVERSE : PRINT "  ";: NORMAL : PRINT " ROUTINES WHICH WIPE A PAGE OF TEXT   ";: INVERSE : PRINT "  ";: NORMAL : PRINT " OFF THE SCREEN. JUST AS THERE IS NO  ";: INVERSE 
  61. 315  PRINT "  ";: NORMAL : PRINT " EXCUSE FOR PRESENTING TEXT IN A DULL ";: INVERSE : PRINT "  ";: NORMAL : PRINT " FASHION, THERE IS ALSO NO REASON TO  ";: INVERSE : PRINT "  ";: NORMAL 
  62. 320  PRINT " TO BE SATISFIED WITH A PLAIN OLD     ";: INVERSE : PRINT "  ";: NORMAL : PRINT " "; CHR$(34);"HOME"; CHR$(34);" WHEN YOU WANT TO GET RID OF A ";: INVERSE : PRINT "  ";: NORMAL : PRINT " PAGE OF TEXT.";: HTAB 40: INVERSE : PRINT "  ";
  63. 325  HTAB 40: PRINT "  ";: NORMAL : PRINT " YOU WILL SEE THE LINES IN THIS BOX   ";: INVERSE : PRINT "  ";: NORMAL : PRINT " OVER AND OVER, SIMPLY AS A METHOD OF ";: INVERSE : PRINT "  ";: NORMAL : PRINT " FILLING THE PAGE SO THAT THERE IS    ";: INVERSE : PRINT "  ";
  64. 330  NORMAL : PRINT " SOMETHING ON THE SCREEN TO WIPE OUT. ";: INVERSE : PRINT "  ";: HTAB 40: PRINT "  ";: NORMAL : PRINT " BENEATH THIS BOX YOU WILL SEE THE    ";: INVERSE : PRINT "  ";: NORMAL : PRINT " NAME OF THE SUBROUTINE WHICH WILL    ";: INVERSE : PRINT "  ";
  65. 335  NORMAL : PRINT " RUN AS SOON AS YOU TYPE A KEY. YOU   ";: INVERSE : PRINT "  ";: NORMAL : PRINT " CAN THEN LIST THIS PROGRAM TO FIND   ";: INVERSE : PRINT "  ";: NORMAL 
  66. 340  PRINT " ANY SUBROUTINE YOU WANT TO USE.      ";: INVERSE : PRINT "  ";: HTAB 40: PRINT "                                         ";: NORMAL :X =  FRE(0): RETURN 
  67. 19000  REM                                 PUT-ONS                                                              
  68. 20000  REM <CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H>          <CTRL-M>ROLLING TEXT<CTRL-M>============<CTRL-M><CTRL-M>
  69. 20002  REM <CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H>REQUIRES THIS STATEMENT:<CTRL-M>DIM Z$(22)<CTRL-M>Z$(0) THROUGH Z$(22) SHOULD<CTRL-M>BE STRINGS OF 40 CHARACTERS<CTRL-M>OR LESS<CTRL-M>
  70. 20004 ZB = 22: FOR ZA = 0 TO 22: POKE 34,ZA
  71. 20006  FOR ZC = 0 TO ZB: HTAB 1: PRINT Z$(ZC);: IF  LEN(Z$(ZC)) <40  THEN  PRINT 
  72. 20008  NEXT : NEXT : TEXT 
  73. 20010  VTAB 23: HTAB 38: RETURN 
  74. 20020  REM <CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H>          <CTRL-M>VERTICAL RISE<CTRL-M>=============<CTRL-M><CTRL-M>
  75. 20022  REM <CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H>REQUIRES THIS STATEMENT:<CTRL-M>DIM Z$(22)<CTRL-M>Z$(0) THROUGH Z$(22) SHOULD<CTRL-M>BE STRINGS OF 40 CHARACTERS<CTRL-M>OR LESS<CTRL-M>
  76. 20024  FOR Z = 0 TO 22
  77. 20026 Z$(Z) = Z$(Z) +"                                       "
  78. 20028  NEXT 
  79. 20030  POKE 33,1: FOR Z = 0 TO 39: POKE 32,Z: VTAB 24: FOR ZZ = 0 TO 22: PRINT  MID$ (Z$(ZZ),Z +1,1);: NEXT : NEXT : PRINT " ": TEXT : HTAB 1: RETURN 
  80. 20060  REM <CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H>          <CTRL-M><CTRL-M>REPEATING LINE<CTRL-M>==============<CTRL-M>
  81. 20064  FOR Z = 0 TO 22:Z$(Z) = Z$(Z) +"                                        ": NEXT 
  82. 20066  FOR Z = 0 TO 22: FOR ZZ = 22 TO Z  STEP  -1: VTAB ZZ +1: PRINT  LEFT$(Z$(Z),40);: NEXT : NEXT : RETURN 
  83. 20070  REM <CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H>          <CTRL-M><CTRL-M>CLICKS<CTRL-M>======<CTRL-M>
  84. 20072  REM <CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H>REQUIRES THESE VARIABLES:<CTRL-M>V  (VTAB)<CTRL-M>Z$  (STRING OF ANY LENGTH)<CTRL-M>
  85. 20074  SPEED= 180: VTAB V: FOR Z = 1 TO  LEN(Z$): PRINT  MID$ (Z$,Z,1);:ZZ =  PEEK( -16336) + PEEK( -16336): SPEED= 255: NEXT : PRINT : RETURN 
  86. 20080  REM <CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H>          <CTRL-M><CTRL-M>UP AND IN PULL<CTRL-M>==============<CTRL-M>
  87. 20082  REM <CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H>REQUIRES THESE VARIABLES:<CTRL-M>V  (VTAB:LOWER NUMBERS ARE BEST)<CTRL-M>L$ (STRING:38 CHARACTERS OR LESS)
  88. 20084  POKE 34,V
  89. 20086 ZZ =  LEN(L$): IF ZZ/2 < > INT(ZZ/2)  THEN L$ = L$ +" "
  90. 20088 ZZ =  LEN(L$)/2
  91. 20090  SPEED= 160: VTAB 23
  92. 20092  FOR Z = 1 TO  LEN(L$)/2: HTAB 1: PRINT  MID$ (L$,ZZ +1 -Z,1);: HTAB 40: PRINT  MID$ (L$,ZZ +Z,1);: NEXT 
  93. 20094  SPEED= 65
  94. 20096  FOR Z = 1 TO 23 -V -ZZ: PRINT : NEXT 
  95. 20098  SPEED= 225
  96. 20100  FOR Z = 1 TO ZZ: VTAB V: HTAB 1: PRINT  MID$ (L$,ZZ +1 -Z,Z);: HTAB 41 -Z: PRINT  MID$ (L$,ZZ +1,Z);: VTAB 24: PRINT : NEXT 
  97. 20102  FOR Z = 1 TO 20 -ZZ: VTAB V: HTAB Z: PRINT " "; LEFT$(L$,ZZ);: HTAB 41 -ZZ -Z: PRINT  RIGHT$(L$,ZZ);" ";: NEXT 
  98. 20104  SPEED= 255: POKE 34,0: RETURN 
  99. 20110  REM <CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H>          <CTRL-M><CTRL-M>RIGHT PULL<CTRL-M>==========<CTRL-M>
  100. 20112  REM <CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H>REQUIRES THESE VARIABLES:<CTRL-M>V (VTAB)<CTRL-M>Z$ (STRING:40 CHARACTERS OR LESS)  
  101. 20114 Z$ = Z$ +"                                       "
  102. 20116  SPEED= 240: FOR Z = 0 TO 39: VTAB V: HTAB 40 -Z: PRINT  LEFT$(Z$,Z +1): NEXT : SPEED= 255: RETURN 
  103. 20120  REM <CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H>          <CTRL-M><CTRL-M>LEFT PULL<CTRL-M>=========<CTRL-M>
  104. 20122  REM <CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H>REQUIRES THESE VARIABLES:<CTRL-M>V (VTAB)<CTRL-M>Z$ (STRING: ANY LENGTH)<CTRL-M>
  105. 20124  SPEED= 235: FOR Z = 1 TO  LEN(Z$): VTAB V: HTAB 1: PRINT  RIGHT$(Z$,Z): NEXT : SPEED= 255: RETURN 
  106. 20130  REM <CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H>          <CTRL-M><CTRL-M>CENTER PULL<CTRL-M>===========<CTRL-M>
  107. 20132  REM <CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H>REQUIRES THESE VARIABLES:<CTRL-M>V (VTAB)<CTRL-M>Z$ (STRING:40 CHARACTERS OR LESS)  
  108. 20134  SPEED= 235:Z =  LEN(Z$): IF Z/2 < > INT(Z/2)  THEN Z$ = Z$ +" ":Z = Z +1
  109. 20136 Z1 = 0: VTAB V: FOR ZZ = Z/2 TO 1  STEP  -1: HTAB 20 -Z1:Z1 = Z1 +1: PRINT  LEFT$(Z$,Z1); RIGHT$(Z$,Z1);: NEXT : PRINT : SPEED= 255: RETURN 
  110. 20170  REM <CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H>          <CTRL-M><CTRL-M>SLOT MACHINE TEXT<CTRL-M>=================<CTRL-M>
  111. 20172  REM <CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H>REQUIRES THESE VARIABLES:<CTRL-M>V (VTAB)<CTRL-M>L$ (STRING OF ANY LENGTH)<CTRL-M>
  112. 20174  VTAB V: SPEED= 240
  113. 20176  FOR Z = 1 TO  LEN(L$):Z$ =  MID$ (L$,Z,1)
  114. 20178  FOR ZZ = 32 TO 255: PRINT  CHR$(ZZ);: IF  CHR$(ZZ) < >Z$  THEN  CALL  -1008: NEXT 
  115. 20180 X =  PEEK( -16336) - PEEK( -16336) -X =  PEEK( -16336) - PEEK( -16336) -X =  PEEK( -16336) - PEEK( -16336) -X =  PEEK( -16336) - PEEK( -16336): NEXT Z
  116. 20182  SPEED= 255: PRINT : RETURN 
  117. 20320  REM <CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H>          <CTRL-M><CTRL-M>ESCALATOR<CTRL-M>=========<CTRL-M>
  118. 20322  REM <CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H>REQUIRES THESE VARIABLES:<CTRL-M>V (VTAB)<CTRL-M>L$ (STRING:39 CHARACTERS OR LESS)  
  119. 20324  FOR Z = 1 TO  LEN(L$): IF  MID$ (L$,Z,1) = " "  THEN  NEXT 
  120. 20326  FOR ZZ = 24 TO V +1  STEP  -1: VTAB ZZ: HTAB ZZ +12: PRINT  MID$ (L$,Z,1);: FOR Z1 = 1 TO 4: NEXT : CALL  -1008: PRINT " ";
  121. 20328  NEXT : IF Z > PEEK(36)  THEN  FOR Z2 =  PEEK(36) TO Z -1: HTAB Z2: PRINT " "; MID$ (L$,Z,1);: FOR Z1 = 1 TO 3: NEXT : NEXT : CALL  -1008: PRINT " ";: PRINT  MID$ (L$,Z,1);
  122. 20330  IF Z =  PEEK(36)  THEN  CALL  -1008: CALL  -998: PRINT  MID$ (L$,Z,1);
  123. 20332  IF Z < PEEK(36)  THEN  FOR Z2 =  PEEK(36) TO Z  STEP  -1: HTAB Z2: PRINT  MID$ (L$,Z,1);: CALL  -1008: FOR Z1 = 1 TO 3: NEXT : PRINT " ";: NEXT : CALL  -998: CALL  -1008: PRINT  MID$ (L$,Z,1);
  124. 20334  NEXT : RETURN 
  125. 20340  REM <CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H>          <CTRL-M><CTRL-M>HIDDEN MESSAGE<CTRL-M>==============<CTRL-M>
  126. 20342  REM <CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H>REQUIRES THESE VARIABLES:<CTRL-M>V (VTAB)<CTRL-M>L$(STRING OF ANY LENGTH)<CTRL-M>
  127. 20344  VTAB V: FOR Z = 1 TO  LEN(L$): GET ZZ$:ZX =  PEEK( -16336) - PEEK( -16336): PRINT  MID$ (L$,Z,1);: NEXT : RETURN 
  128. 21200  REM <CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H>          <CTRL-M><CTRL-M>TITLE PAGE<CTRL-M>==========<CTRL-M>
  129. 21202  REM <CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H>VARIABLES NEEDED:<CTRL-M>T1$: FIRST LINE OF TITLE<CTRL-M>T2$: SECOND LINE OF TITLE<CTRL-M>T3$: THIRD LINE OF TITLE<CTRL-M>
  130. 21204  IF  LEN(T1$) <34  THEN T1$ = T1$ +" "
  131. 21206  IF  LEN(T1$) <34  THEN T1$ = " " +T1$: GOTO 21204
  132. 21208  IF  LEN(T2$) <34  THEN T2$ = T2$ +" "
  133. 21210  IF  LEN(T2$) <34  THEN T2$ = " " +T2$: GOTO 21208
  134. 21212  IF  LEN(T3$) <34  THEN T3$ = T3$ +" "
  135. 21214  IF  LEN(T3$) <34  THEN T3$ = " " +T3$: GOTO 21212
  136. 21216  HOME : PRINT "*";: FOR Z = 1 TO 38: PRINT "^";: NEXT : PRINT "*<";: INVERSE : FOR Z = 1 TO 38: PRINT " ";: NEXT : NORMAL : PRINT "><";: INVERSE : PRINT " ";: NORMAL : PRINT "*";
  137. 21218  INVERSE :A$ = "''''!''''!''''!''''!''''!''''!''''": PRINT A$;: NORMAL : PRINT "*";: INVERSE : PRINT " ";: NORMAL : PRINT ">";
  138. 21220 B$ = "::::!::::!::::!::::!::::!::::!::::"
  139. 21222  FOR Z = 1 TO 8: PRINT "<";: INVERSE : PRINT " ";: NORMAL : PRINT ">";: INVERSE : PRINT B$;: NORMAL : PRINT "<";: INVERSE : PRINT " ";: NORMAL : PRINT "><";: INVERSE : PRINT " ";: NORMAL : PRINT ">";: INVERSE : PRINT A$;: NORMAL : PRINT "<";: INVERSE : PRINT " ";: NORMAL : PRINT ">";: NEXT 
  140. 21224  PRINT "<";: INVERSE : PRINT " ";: NORMAL : PRINT ">";: INVERSE : PRINT B$;: NORMAL : PRINT "<";: INVERSE : PRINT " ";: NORMAL : PRINT "><";
  141. 21226  INVERSE : PRINT " ";: NORMAL : PRINT ">";: FOR Z = 1 TO 34: PRINT "V";: NEXT : PRINT "<";: INVERSE : PRINT " ";: NORMAL : PRINT "><";
  142. 21228  INVERSE : PRINT " ";: NORMAL : PRINT "*";: FOR Z = 1 TO 34: PRINT "^";: NEXT : PRINT "*";: INVERSE : PRINT " ";: NORMAL : PRINT "><";
  143. 21230  INVERSE : FOR Z = 1 TO 38: PRINT " ";: NEXT : NORMAL : PRINT ">*";: FOR Z = 1 TO 38: PRINT "V";: NEXT 
  144. 21232  POKE 2039,170
  145. 21234  POKE 32,3: POKE 33,34: POKE 34,2: POKE 35,21
  146. 21236  FOR Z = 1 TO 500: NEXT 
  147. 21238  VTAB 21: FOR XZ = 1 TO 7: PRINT : FOR ZZ = 1 TO 12:X =  PEEK( -16336): NEXT : FOR Z = 1 TO 500: NEXT : NEXT 
  148. 21240  PRINT : FOR Z = 1 TO 12:X =  PEEK( -16336): NEXT 
  149. 21242  VTAB 14: PRINT T3$;: FOR Z = 1 TO 500: NEXT : POKE 35,13: VTAB 13
  150. 21244  PRINT : FOR ZZ = 1 TO 12:X =  PEEK( -16336): NEXT : FOR Z = 1 TO 500: NEXT 
  151. 21246  PRINT : FOR Z = 1 TO 12:X =  PEEK( -16336): NEXT 
  152. 21248  VTAB 12: PRINT T2$;: FOR Z = 1 TO 500: NEXT : POKE 35,11: VTAB 11
  153. 21250  PRINT : FOR ZZ = 1 TO 12:X =  PEEK( -16336): NEXT : FOR Z = 1 TO 500: NEXT 
  154. 21252  PRINT : FOR Z = 1 TO 12:X =  PEEK( -16336): NEXT 
  155. 21254  VTAB 10: PRINT T1$;: FOR Z = 1 TO 500: NEXT : POKE 35,9: VTAB 9
  156. 21256  FOR XZ = 1 TO 6: PRINT : FOR ZZ = 1 TO 12:X =  PEEK( -16336): NEXT : FOR Z = 1 TO 500: NEXT : NEXT 
  157. 21258  FOR X = 1 TO 5000: NEXT : TEXT : RETURN 
  158. 30000  REM <CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H>          <CTRL-M><CTRL-M>COLUMN WIPE<CTRL-M>===========<CTRL-M>
  159. 30002  FOR A = 1 TO 40: POKE 33,A: FOR B = 1 TO 10: PRINT : NEXT : NEXT : FOR A = 1 TO 15: PRINT : NEXT 
  160. 30004  RETURN 
  161. 30010  REM <CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H>          <CTRL-M><CTRL-M>LEFT TO RIGHT WIPE<CTRL-M>==================<CTRL-M>
  162. 30012  FOR Z = 1 TO 40: POKE 33,Z: FOR ZZ = 1 TO 15: NEXT : HOME : NEXT : RETURN 
  163. 30020  REM <CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H>          <CTRL-M><CTRL-M>RIGHT TO LEFT WIPE<CTRL-M>==================<CTRL-M>
  164. 30022  FOR Z = 39 TO 0  STEP  -1: POKE 32,Z: POKE 33,40 -Z: HOME : NEXT : RETURN 
  165. 30030  REM <CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H>          <CTRL-M><CTRL-M>TOP TO BOTTOM WIPE<CTRL-M>==================<CTRL-M>
  166. 30032  FOR Z = 1 TO 24: POKE 35,Z: FOR ZZ = 1 TO 25: NEXT : HOME : NEXT : RETURN 
  167. 30060  REM <CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H>          <CTRL-M><CTRL-M>VERTICAL CENTER OUT WIPE<CTRL-M>========================<CTRL-M>
  168. 30062  FOR Z = 19 TO 0  STEP  -1: POKE 32,Z: POKE 33,40 -2 *Z: FOR ZZ = 1 TO 15: NEXT : HOME : NEXT : RETURN 
  169. 30070  REM <CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H>          <CTRL-M><CTRL-M>TWO-WAY CENTER OUT WIPE<CTRL-M>=======================<CTRL-M>
  170. 30072  FOR Z = 19 TO 0  STEP  -1: POKE 32,Z: POKE 33,40 -2 *Z: POKE 34, INT(Z/2): POKE 35,24 - INT(Z/2): HOME : NEXT : RETURN 
  171. 30080  REM <CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H>          <CTRL-M><CTRL-M>X-WIPE<CTRL-M>======<CTRL-M>
  172. 30082  POKE 33,1: FOR Z = 11 TO 0  STEP  -1: POKE 34,Z: POKE 35,24 -Z: POKE 32,Z: HOME : POKE 32,39 -Z: HOME : NEXT 
  173. 30084  FOR Z = 0 TO 11: POKE 33,2 +2 *Z: POKE 32,19 -Z: POKE 34,11 -Z: POKE 35,13 -Z: HOME : POKE 34,11 +Z: POKE 35,13 +Z: HOME : NEXT 
  174. 30086  TEXT : FOR Z = 12 TO 1  STEP  -1: VTAB Z: CALL  -875: VTAB 25 -Z: CALL  -875: NEXT : RETURN 
  175. 30110  REM <CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H>          <CTRL-M><CTRL-M>SPIRAL WIPE<CTRL-M>===========<CTRL-M>
  176. 30112  VTAB 12: HTAB 13: PRINT "                "
  177. 30114  VTAB 13: FOR Z = 28 TO 13  STEP  -1: HTAB Z: PRINT " ";: NEXT 
  178. 30116 TL = 12:TR = 29:BR = 14:BL = 13:OT = 11
  179. 30118  ONERR  GOTO 30126
  180. 30120  FOR X = BL TO TL  STEP  -1: VTAB X: HTAB TL: PRINT " ";: NEXT :BL = BL +1: FOR X = TL TO TR: VTAB TL: HTAB X: PRINT " ";: NEXT :TL = TL -1
  181. 30122  FOR X = TL +1 TO BR: VTAB X: HTAB TR: PRINT " ";: NEXT :TR = TR +1
  182. 30124  FOR X = TR -1 TO OT  STEP  -1: VTAB BR: HTAB X: PRINT " ";: NEXT :BR = BR +1:OT = OT -1: GOTO 30120
  183. 30126  POKE 216,0: POKE 768,104: POKE 769,168: POKE 770,104: POKE 771,166: POKE 772,223: POKE 773,154: POKE 774,72: POKE 775,152: POKE 776,72: POKE 777,96: CALL 768: RETURN 
  184. 30140  REM <CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H>          <CTRL-M><CTRL-M>SIMPLE SCROLL UP<CTRL-M>================<CTRL-M>
  185. 30142  FOR Z = 1 TO 24: PRINT :ZZ =  PEEK( -16336) + PEEK( -16336): FOR ZQ = 1 TO 50: NEXT : NEXT : RETURN 
  186. 30150  REM <CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H>          <CTRL-M><CTRL-M>FLASHY SCROLL UP<CTRL-M>================<CTRL-M>
  187. 30152  POKE  -16298,0: POKE  -16302,0
  188. 30154  FOR Z = 1 TO 25: FOR ZZ = 1 TO 35: NEXT : POKE  -16304,0:ZQ =  PEEK( -16336) - PEEK( -16336): PRINT : FOR ZZ = 1 TO 35: NEXT : POKE  -16303,0: NEXT : RETURN 
  189. 30160  REM <CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H>          <CTRL-M><CTRL-M>SCROLL DOWN<CTRL-M>===========<CTRL-M>
  190. 30162  REM  NEEDS HIMEM:33790
  191. 30164 Z$ = "8400<400.800MN480<8400.8770MN428<8780.87A7MN450<87A8.87D0MND9C6G"
  192. 30166  FOR Z = 1 TO  LEN(Z$): POKE 511 +Z, ASC( MID$ (Z$,Z,1)) +128: NEXT : POKE 72,0: CALL  -144
  193. 30168 X =  PEEK( -16336) + PEEK( -16336): VTAB 1: HTAB 1: PRINT "                                        ": FOR Z = 1 TO 23: CALL  -144:X =  PEEK( -16336) + PEEK( -16336): NEXT : RETURN 
  194. 30210  REM <CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H>          <CTRL-M><CTRL-M>SLANT LEFT<CTRL-M>==========<CTRL-M>
  195. 30212  VTAB 24: FOR Z = 39 TO 0  STEP  -1: POKE 32,Z: POKE 33,40 -Z: PRINT : NEXT : FOR Z = 1 TO 24: PRINT : NEXT : RETURN 
  196. 30220  REM <CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H>          <CTRL-M><CTRL-M>SLANT RIGHT<CTRL-M>===========<CTRL-M>
  197. 30222  VTAB 24: FOR Z = 1 TO 40: POKE 33,Z: PRINT : NEXT : FOR Z = 1 TO 24: PRINT : NEXT : RETURN 
  198. 30230  REM <CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H>          <CTRL-M><CTRL-M>SLANT FROM CENTER<CTRL-M>=================<CTRL-M>
  199. 30232  VTAB 24: FOR Z = 19 TO 0  STEP  -1: POKE 32,Z: POKE 33,(20 -Z) *2: PRINT : NEXT : FOR Z = 1 TO 24: PRINT : NEXT : RETURN 
  200. 30240  REM <CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H>          <CTRL-M><CTRL-M>SLANT FROM EDGES<CTRL-M>================<CTRL-M>
  201. 30242  VTAB 24: FOR Z = 1 TO 20: POKE 33,Z: POKE 32,0: PRINT : POKE 32,40 -Z: PRINT : NEXT : TEXT : FOR Z = 1 TO 24: PRINT : NEXT : RETURN 
  202. 30250  REM <CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H>          <CTRL-M><CTRL-M>BORDER WIPE<CTRL-M>===========<CTRL-M><CTRL-M>VARIABLES REQUIRED:
  203. 30252  REM <CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H>CH$ (BORDER CHARACTER)<CTRL-M>W (WIDTH OF BORDER)<CTRL-M>MODE (OPTIONAL:<CTRL-M>   SET MODE=1 FOR FLASH OR<CTRL-M>   SET MODE=2 FOR INVERSE)<CTRL-M>
  204. 30254  IF  PEEK(32) >0  THEN  POKE 32, PEEK(32) -1: POKE 33, PEEK(33) +2: POKE 34, PEEK(34) -1: POKE 35, PEEK(35) +1
  205. 30256  IF MODE = 1  THEN  FLASH 
  206. 30258  IF MODE = 2  THEN  INVERSE 
  207. 30260  VTAB  PEEK(34) +1: HTAB 1
  208. 30262 TZ =  PEEK(34):BZ =  PEEK(35):WZ =  PEEK(33):LZ =  PEEK(32): FOR Z = 1 TO (BZ -TZ) *WZ -1: PRINT CH$;: NEXT : POKE (BZ -17) *129 +1136, ASC(CH$) +128 -MODE *64
  209. 30264  NORMAL : POKE 34,TZ +W: POKE 35,BZ -W: POKE 33,WZ -2 *W: POKE 32,LZ +W: VTAB  PEEK(35): SPEED= 190: FOR Z = 1 TO 22: PRINT : NEXT : SPEED= 255
  210. 30266  POKE 34,TZ +W +1: POKE 35,BZ -W -1: POKE 33,WZ -2 *W -2: POKE 32,LZ +W +1:MODE = 0: HOME : RETURN 
  211. 65535  REM                                                                               =========================== B. ZARRO SOFTWARE AND STUFF ALL RIGHTS RESERVED         ===========================